import Vue from "vue";
import Vuex from "vuex";
import login from "./login"
import work from "./work/work"

Vue.use(Vuex);

export default new Vuex.Store({
  strict:true,//严格模式
  //初始状态
  state: {
    name:'hello vuex',
    list:[
      {title:"西瓜",price:1100},
      {title:"榴莲",price:110},
      {title:"芒果",price:130},
      {title:"葡萄",price:90},
    ],
    token:'sdsdsdsddsdsd'
  },
  //数据处理筛选状态
  getters:{
    //过滤低于一千元的
    lowPrice(state){
      return state.list.filter(item=>{
        return item.price < 1000
      })
    }
  },
//mutations:只能做同步的操作 包含多个直接更新state的方法（回调函数）的对象 第一个默认参数是state
  mutations: {
    updateName(state,value){
      state.name += value
    },
    updateName2(state,value){
      console.log(value);
      state.name += value.str;
    }
  },
  // actions:可以做异步操作，默认接收的第一个参数就是store以前的数据 调用接口将新数据输出到这里
  actions: {
    action1(store,value){
      store.commit('updateName',value)
    } ,
    //通过解构的方式
    action2({ commit }, value){
      commit('updateName',value)
    }
  },
  modules: {
    login,
    work
  }
});
